package com.hl.domain;

import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 商品订单对象 order_main
 * 
 * @author ruoyi
 * @date 2025-08-07
 */
public class OrderMain extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderId;

    /** 关联用户表的用户ID */
    private Long memberId;

    /** 买家名称（下单时的用户名快照） */
    @Excel(name = "买家名称", readConverterExp = "下=单时的用户名快照")
    private String buyerName;

    /** 买家手机号（下单时的快照，方便联系） */
    private String buyerPhone;

    /** 订单来源 */
    @Excel(name = "订单来源")
    private String orderSource;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String orderType;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 收货人姓名 */
    private String consigneeName;

    /** 收货人电话 */
    private String consigneePhone;

    /** 收货地址 */
    private String consigneeAddress;

    /** 支付方式 */
    private String paymentMethod;
    /** 支付时间 */
    private String paymentTime;

    public String getPaymentTime() {
        return paymentTime;
    }

    public void setPaymentTime(String paymentTime) {
        this.paymentTime = paymentTime;
    }

    public String getPaymentStatus() {
        return paymentStatus;
    }

    public void setPaymentStatus(String paymentStatus) {
        this.paymentStatus = paymentStatus;
    }

    /** 支付状态*/
    private String paymentStatus;

    /** 买家留言 */
    private String buyerNote;

    /** 配送方式 */
    private String deliveryMethod;

    // 订单商品列表
    private List<OrderProduct> orderProductList;

    /** 发票信息 */
    @Excel(name = "发票信息")
    private String invoiceInfo;

    public List<OrderProduct> getOrderProductList() {
        return orderProductList;
    }

    public void setOrderProductList(List<OrderProduct> orderProductList) {
        this.orderProductList = orderProductList;
    }

    public void setOrderId(String orderId)
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }

    public void setMemberId(Long memberId) 
    {
        this.memberId = memberId;
    }

    public Long getMemberId() 
    {
        return memberId;
    }

    public void setBuyerName(String buyerName) 
    {
        this.buyerName = buyerName;
    }

    public String getBuyerName() 
    {
        return buyerName;
    }

    public void setBuyerPhone(String buyerPhone) 
    {
        this.buyerPhone = buyerPhone;
    }

    public String getBuyerPhone() 
    {
        return buyerPhone;
    }

    public void setOrderSource(String orderSource) 
    {
        this.orderSource = orderSource;
    }

    public String getOrderSource() 
    {
        return orderSource;
    }

    public void setOrderType(String orderType) 
    {
        this.orderType = orderType;
    }

    public String getOrderType() 
    {
        return orderType;
    }

    public void setOrderAmount(BigDecimal orderAmount) 
    {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount() 
    {
        return orderAmount;
    }

    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }

    public void setConsigneeName(String consigneeName) 
    {
        this.consigneeName = consigneeName;
    }

    public String getConsigneeName() 
    {
        return consigneeName;
    }

    public void setConsigneePhone(String consigneePhone) 
    {
        this.consigneePhone = consigneePhone;
    }

    public String getConsigneePhone() 
    {
        return consigneePhone;
    }

    public void setConsigneeAddress(String consigneeAddress) 
    {
        this.consigneeAddress = consigneeAddress;
    }

    public String getConsigneeAddress() 
    {
        return consigneeAddress;
    }

    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }

    public void setBuyerNote(String buyerNote) 
    {
        this.buyerNote = buyerNote;
    }

    public String getBuyerNote() 
    {
        return buyerNote;
    }

    public void setDeliveryMethod(String deliveryMethod) 
    {
        this.deliveryMethod = deliveryMethod;
    }

    public String getDeliveryMethod() 
    {
        return deliveryMethod;
    }

    public void setInvoiceInfo(String invoiceInfo) 
    {
        this.invoiceInfo = invoiceInfo;
    }

    public String getInvoiceInfo() 
    {
        return invoiceInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("memberId", getMemberId())
            .append("buyerName", getBuyerName())
            .append("buyerPhone", getBuyerPhone())
            .append("orderSource", getOrderSource())
            .append("orderType", getOrderType())
            .append("orderAmount", getOrderAmount())
            .append("orderStatus", getOrderStatus())
            .append("createTime", getCreateTime())
            .append("consigneeName", getConsigneeName())
            .append("consigneePhone", getConsigneePhone())
            .append("consigneeAddress", getConsigneeAddress())
            .append("paymentMethod", getPaymentMethod())
            .append("buyerNote", getBuyerNote())
            .append("deliveryMethod", getDeliveryMethod())
            .append("invoiceInfo", getInvoiceInfo())
            .append("orderProductList", getOrderProductList())
            .toString();
    }
}
